Custom Functions তৈরি এবং ব্যবহারের উদাহরণ

Database Tutorials - কাউচডিবি (CouchDB) CouchDB এবং JavaScript ফাংশন |
197
197

CouchDB একটি অত্যন্ত নমনীয় এবং শক্তিশালী ডাটাবেস সিস্টেম, যা MapReduce এবং Views এর মাধ্যমে কাস্টম কিউরি এবং ফাংশন তৈরি করতে সহায়ক। আপনি যদি CouchDB-তে কাস্টম ফাংশন তৈরি করতে চান, আপনি JavaScript ব্যবহার করে কাস্টম Map, Reduce, বা Filter Functions তৈরি করতে পারবেন।

এখানে Custom Functions তৈরি এবং ব্যবহার করার উদাহরণ দেয়া হলো।


1. Map Function তৈরি

Map function কাস্টম কিউরি তৈরি করতে ব্যবহৃত হয় যা ডকুমেন্ট থেকে ডেটা বের করে এবং key-value পেয়ার তৈরি করে। এই কাস্টম ফাংশনটি সাধারণত Views-এর অংশ হিসেবে কাজ করে।

Map Function উদাহরণ:

ধরা যাক, আমাদের একটি users ডাটাবেস আছে এবং আমরা যদি প্রতিটি ব্যবহারকারীর age (বয়স) বের করতে চাই, তাহলে আমাদের একটি কাস্টম Map function তৈরি করতে হবে।

function (doc) {
  if (doc.age) {
    emit(doc.age, 1);
  }
}
  • emit(): এখানে emit(doc.age, 1) ব্যবহার করা হয়েছে, যাতে age কে key হিসেবে এবং 1 কে value হিসেবে নির্ধারণ করা হয়।
  • এই ফাংশনটি age এর উপর ভিত্তি করে ডেটার একটি তালিকা তৈরি করবে, যাতে বয়সের মান এবং তার সাথে সম্পর্কিত হিসাব করা যাবে।

2. Reduce Function তৈরি

Reduce function ব্যবহারকারীকে Map function এর মাধ্যমে বের করা key-value pairs থেকে ফলাফল সংকুচিত বা aggregate করতে সহায়ক। এতে ডেটার বিভিন্ন পরিসংখ্যান, যেমন sum, average, count ইত্যাদি বের করা যায়।

Reduce Function উদাহরণ:

যদি আমরা চাই যে age ভিত্তিক সব ব্যবহারকারীর সংখ্যা বের করতে, তাহলে আমরা একটি কাস্টম Reduce function তৈরি করতে পারি।

function (keys, values, rereduce) {
  return sum(values);
}
  • এখানে, sum(values) ব্যবহৃত হয়েছে, যা values অ্যারের সব মানের যোগফল বের করবে।
  • এই ফাংশনটি Map ফাংশন থেকে বের হওয়া age কীর সাথে সম্পর্কিত সকল মানের যোগফল (যেমন, কতজন ব্যবহারকারী নির্দিষ্ট বয়সের মধ্যে আছেন) প্রদান করবে।

3. Custom Filter Function তৈরি

CouchDB তে Filter Functions ব্যবহার করে ডেটা রিড করার সময় বিভিন্ন কন্ডিশন চেক করা যায়। এই ফাংশনটি MapReduce ফাংশনের মতো কাজ না করে, View এ কেবলমাত্র ডেটার filtering সম্পাদন করে।

Filter Function উদাহরণ:

ধরা যাক, আমরা শুধুমাত্র active ব্যবহারকারীদের দেখতে চাই, যারা is_active ফিল্ডে true আছে।

function (doc, req) {
  if (doc.is_active === true) {
    return true;
  }
  return false;
}
  • এই ফাংশনটি is_active ফিল্ডে true মান থাকা ডকুমেন্টগুলোই ফিল্টার করবে এবং কেবলমাত্র তাদেরকে View-তে প্রদর্শন করবে।

4. Custom Functions এর ব্যবহার

কাস্টম ফাংশনগুলো সাধারণত CouchDB Views এর মধ্যে ব্যবহার করা হয়, এবং এই ফাংশনগুলোকে Design Document-এ অন্তর্ভুক্ত করা হয়। একটি Design Document-এ View তৈরির উদাহরণ:

View তৈরি করার উদাহরণ:

{
  "_id": "_design/user_views",
  "views": {
    "age_view": {
      "map": "function (doc) { if (doc.age) { emit(doc.age, 1); } }",
      "reduce": "function (keys, values, rereduce) { return sum(values); }"
    }
  }
}
  • এখানে, একটি নতুন design document তৈরি করা হয়েছে যার মধ্যে age_view নামক একটি view রয়েছে।
  • এই view-এ Map এবং Reduce ফাংশন দুটি রয়েছে।

Custom View কে কল করা:

View এর মাধ্যমে কাস্টম কিউরি চালানোর জন্য আপনি HTTP API ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

GET /db/_design/user_views/_view/age_view

এটি age_view নামক view থেকে ডেটা বের করবে এবং সেখানে Map এবং Reduce ফাংশন অনুযায়ী ফলাফল প্রদর্শন করবে।


5. CouchDB তে Custom Function ব্যবহার করার সুবিধা

  • ফ্লেক্সিবিলিটি: কাস্টম ফাংশন আপনাকে ডেটা সংরক্ষণ এবং অনুসন্ধানের জন্য অধিক নমনীয়তা প্রদান করে, কারণ আপনি আপনার প্রয়োজন অনুসারে ফাংশন তৈরি করতে পারেন।
  • পারফরম্যান্স: কাস্টম MapReduce ফাংশনগুলো আপনাকে aggregated results (যেমন, sum, average, count) সরাসরি ডেটাবেস থেকে পেতে সহায়ক।
  • ডেটা প্রসেসিং: কাস্টম ফাংশনগুলি ব্যবহার করে আপনি ডেটা প্রসেসিং এবং রিপোর্টিং কাজগুলো খুব সহজে করতে পারেন, যা সাধারণ SQL কুয়েরি থেকে অনেক দ্রুত হতে পারে।

উপসংহার

Custom Functions CouchDB-তে ডেটা বিশ্লেষণ এবং কাস্টম কিউরি তৈরি করার জন্য একটি শক্তিশালী টুল। আপনি Map, Reduce, এবং Filter ফাংশন ব্যবহার করে আপনার ডেটাবেসের জন্য কাস্টম কিউরি এবং ডেটা প্রসেসিং কার্যক্রম তৈরি করতে পারেন। CouchDB তে এই ফাংশনগুলি খুবই সহজ এবং কার্যকরী, যা অ্যাপ্লিকেশন ডেভেলপমেন্টে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion